home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / public / rayshade / libshade / options.h < prev    next >
C/C++ Source or Header  |  1994-08-01  |  3KB  |  106 lines

  1. /*
  2.  * options.h
  3.  *
  4.  * Copyright (C) 1989, 1991, Craig E. Kolb
  5.  * All rights reserved.
  6.  *
  7.  * This software may be freely copied, modified, and redistributed
  8.  * provided that this copyright notice is preserved on all copies.
  9.  *
  10.  * You may not distribute this software, in whole or in part, as part of
  11.  * any commercial product without the express consent of the authors.
  12.  *
  13.  * There is no warranty or other guarantee of fitness of this software
  14.  * for any purpose.  It is provided solely "as is".
  15.  *
  16.  * $Id: options.h,v 4.0.1.2 92/01/14 18:29:14 cek Exp Locker: cek $
  17.  *
  18.  * $Log:    options.h,v $
  19.  * Revision 4.0.1.2  92/01/14  18:29:14  cek
  20.  * patch3: Added "cpp" option.
  21.  * 
  22.  * Revision 4.0.1.1  91/09/29  15:51:17  cek
  23.  * patch1: Added window and crop options.
  24.  * 
  25.  * Revision 4.0  91/07/17  14:46:54  kolb
  26.  * Initial version.
  27.  * 
  28.  */
  29. #ifndef OPTIONS_H
  30. #define OPTIONS_H
  31.  
  32. /*
  33.  * Constants for Stereo mode
  34.  */
  35. #define LEFT        1
  36. #define RIGHT        2
  37.  
  38. /*
  39.  * Options
  40.  */
  41. typedef struct RSOptions {
  42.     int    stereo,            /* Stereo mode? */
  43.         verbose,        /* Babbling mode? */
  44.         quiet,            /* Don't complain? */
  45.         jitter,            /* use jittered sampling? */
  46.         samples,        /* Sqrt of # of samples */
  47.         maxdepth,        /* Maximum ray tree depth */
  48.         report_freq,        /* Frequency, in lines, of report */
  49.         no_shadows,        /* Trace shadow rays? */
  50.         shadowtransp,        /* ... through transparent objects? */
  51.         cache,            /* Cache shadowing info? */
  52.         appending,        /* Append to image file? */
  53.         resolution_set,        /* resolution set on command line */
  54.         contrast_set,        /* contrast overridden ... */
  55.         samples_set,        /* samples overridden ... */
  56.         cutoff_set,        /* cutoff ... */
  57.         maxdepth_set,        /* adaptive depth ... */
  58.         window_set,        /* subwindow ... */
  59.         crop_set,        /* crop window ... */
  60.         freq_set,        /* report frequency ... */
  61.         jitter_set,        /* use jittering */
  62.         eyesep_set,        /* eye separation ... */
  63.         csg,            /* CSG object someplace in world */
  64.         flipnorm,        /* flip normals of polygonal objs */
  65.         samplemap,        /* output sample map? */
  66.         gaussian,        /* Use gaussian pixel filter? */
  67.         framenum,        /* current frame number */
  68.         startframe,        /* Starting frame number. */
  69.         endframe,        /* ending frame number */
  70.         totalframes,        /* total # of frames */
  71.         totalframes_set,    /* set on command line? */
  72.         cpp;            /* run CPP? */
  73. #ifdef URT
  74.     int    alpha;            /* Write alpha channel? */
  75.     int    exp_output;        /* Write exponential RLE file? */
  76. #endif
  77.     Float    eyesep,            /* Eye separation (for Stereo mode) */
  78.         gamma,            /* Gamma value (0 == no correction) */
  79.         starttime,        /* Think about it ... */
  80.         shutterspeed,        /* time shutter is open */
  81.         framestart,        /* start time of the current frame */
  82.         framelength,        /* length of the current frame */
  83.         filterwidth;        /* Pixel filter width. */
  84.     Color    contrast,        /* Max. allowable contrast */
  85.         cutoff,            /* Ray tree depth control */
  86.         ambient;        /* Ambient light multiplier */
  87.     char    *progname,        /* argv[0] */
  88.         *statsname,        /* Name of stats file. */
  89.         *imgname,        /* Name of output image file */
  90.         *inputname,        /* Name of input file, NULL == stdin */
  91.         *cppargs;        /* arguments to pass to cpp */
  92.     int    window[2][2];        /* Subwindow corners */
  93.     Float    crop[2][2];        /* Crop window, lo/hi normalized */
  94. #ifdef LINDA
  95.     int    workers,        /* # of worker processes */
  96.         workernum,        /* worker #, 0 == supervisor */
  97.         verbose_worker;        /* Babble while you work? */
  98. #endif
  99.     FILE    *pictfile;        /* output file pointer */
  100. } RSOptions;
  101.  
  102. extern RSOptions Options;
  103. extern void OptionsList(), OptionsSet();
  104.  
  105. #endif /* OPTIONS_H */
  106.